// 这是用于定义计数器模块的仓库
import { defineStore } from 'pinia'

// 定义仓库
// 参数1: 唯一的仓库名
// 参数2: 仓库的配置对象(state, getters, actions)
// defineStore(参数1, 参数2)
// useXxxStore => 将来直接调用
const useCounterStore = defineStore('counter', {
  state: () => {
    return {
      count: 0,
    }
  },

  actions: {
    addOne() {
      // this => 就是仓库本身
      // 这边比较特殊, 内部处理了this就是仓库本身 => 便于使用
      this.count++
    },
    // 希望一秒之后+1
    addOneAsync() {
      setTimeout(() => {
        this.count++
      }, 1000)
    },
  },
  getters: {
    double() {
      return this.count * 2
    },
  },
})

export default useCounterStore
